/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package biermanager.nucleo;

import java.util.ArrayList;

/**
 *
 * @author Tiago Silva Loureiro
 */
public class EstatisticasDoCampeonato implements EstatisticasCompeticao{
    
    private ArrayList<Integer> pontosGanhosDoTime;
    private ArrayList<Integer> vitoriasDoTime;
    private ArrayList<Integer> empatesDoTime;
    private ArrayList<Integer> derrotasDoTime;
    private ArrayList<Integer> golsFavorDoTime;
    private ArrayList<Integer> golsContra;
    private ArrayList<Integer> saldoDeGols;
    private ArrayList<Integer> artilheiro;
    int numeroDePartidasRealizadas;

    public EstatisticasDoCampeonato(int numeroDeTimes) {
        pontosGanhosDoTime     = new ArrayList<Integer>(numeroDeTimes);
        vitoriasDoTime         = new ArrayList<Integer>(numeroDeTimes);
        empatesDoTime          = new ArrayList<Integer>(numeroDeTimes);
        derrotasDoTime         = new ArrayList<Integer>(numeroDeTimes);
        golsFavorDoTime        = new ArrayList<Integer>(numeroDeTimes);
        golsContra             = new ArrayList<Integer>(numeroDeTimes);
        saldoDeGols            = new ArrayList<Integer>(numeroDeTimes);
        artilheiro             = new ArrayList<Integer>(numeroDeTimes);
        numeroDePartidasRealizadas = 0;
    }

    public void addEstatisticasDeRodada(ArrayList<Integer> pontosGanhos, ArrayList<Integer> golsFavor, ArrayList<Integer> golsContra, ArrayList<Integer> artilheiro) {
        Integer inteiro;
        for(int i = 0; i < pontosGanhos.size(); i++){
             inteiro = this.pontosGanhosDoTime.get(i) + pontosGanhos.get(i);
             this.pontosGanhosDoTime.set(i, inteiro);
             switch(inteiro){
                 case 0 : {
                     inteiro = this.derrotasDoTime.get(i);
                     inteiro = inteiro + 1;
                     this.derrotasDoTime.set(i, inteiro);
                     break;
                 }
                 case 1 : {
                     inteiro = this.empatesDoTime.get(i);
                     inteiro = inteiro + 1;
                     this.empatesDoTime.set(i, inteiro);
                     break;
                 }
                 case 3 : {
                     inteiro = this.vitoriasDoTime.get(i);
                     inteiro = inteiro + 1;
                     this.vitoriasDoTime.set(i, inteiro);
                 }                 
             }

             inteiro = this.golsFavorDoTime.get(i) + golsFavor.get(i);
             this.golsFavorDoTime.set(i, inteiro);

             inteiro = this.golsContra.get(i) + golsContra.get(i);
             this.golsContra.set(i, inteiro);
             
             inteiro = this.golsFavorDoTime.get(i) - this.golsContra.get(i);
             this.saldoDeGols.set(i, inteiro);

             inteiro = this.artilheiro.get(i);
             i = i + pontosGanhos.get(i);

             numeroDePartidasRealizadas++;
    }
        
    }



    
    public int getPontosGanhos(int indiceTime) {
        return pontosGanhosDoTime.get(indiceTime);
    }

    public int getVitorias(int indiceTime) {
        return vitoriasDoTime.get(indiceTime);
    }

    public int getEmpates(int indiceTime) {
        return empatesDoTime.get(indiceTime);
    }

    public int getDerrotas(int indiceTime) {
        return derrotasDoTime.get(indiceTime);
    }

    public int getGolsFavor(int indiceTime) {
        return golsFavorDoTime.get(indiceTime);
    }

    public int getGolsContra(int indiceTime) {
        return golsContra.get(indiceTime);
    }

    public int getSaldoDeGols(int indiceTime) {
        return saldoDeGols.get(indiceTime);
    }
    public int getArtilheiro(int indiceTime) {
        return saldoDeGols.get(indiceTime);
    }
    public int getNumeroDePartidasRealizadas(){
        return numeroDePartidasRealizadas;
    }
}
